home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
boe.pres.k12.wv.us
/
boe.pres.k12.wv.us.zip
/
boe.pres.k12.wv.us
/
Utilities
/
Finishlynx
/
Disk 2
/
_SETUP.2
/
Group4
/
DakMDP.lss
< prev
next >
Wrap
Text File
|
2002-05-16
|
15KB
|
412 lines
; Defaults: 19200,8,N,1
;
; Lynx Scoreboard Script
;
; Copyright (c) 1995-2002 Lynx System Developers, Inc.
;
; Written by Kirk Sigel
;
; multidrop protocol for Daktronics Glow Cube TI-2009 display (and others)
; written by Todd Chamoy
; last modified 16 May 2002
; turned 8th segment on in all digits
; to turn the 8th segment off, replace all occurrences of
; \bf\86\db\cf\e6\ed\fd\87\ff\e7 with \3f\06\5b\4f\66\6d\7d\07\7f\67
; Note: script will not work properly with time precision set to 1/10000
;
; Notes:
; + Empty lines and lines that start with a semicolon are ignored.
; + Lines that start with two semicolons indicate a section header.
; They must be one of the following:
; ;;Initialization
; ;;TimeRunning
; ;;TimeStopped
; ;;TimeGun
; ;;TimeBreak
; ;;TimeUpdate
; ;;Wind
; ;;TimeOfDay
; ;;ResultsHeader
; ;;ResultsTrailer
; ;;Result
; ;;StartListHeader
; ;;StartListTrailer
; ;;StartList
; ;;MessageHeader
; ;;MessageTrailer
; ;;Message
; Sections may be omitted, appear in any order, and occur more than once.
; + Format lines must begin with a value indicating which variable
; they want to access. The special code \00 indicates that no variable
; is being requested. If a variable is requested it will be inserted where
; a '%s' printf style format specifier appears. There can only be one '%s'
; specifier in lines requesting a variable and no other printf format
; specifiers may appear. Remember, lines requesting a variable are used as
; a printf format string and therefore must behave as such. Lines not
; requesting variables (code \00) can do whatever they want as these
; lines are not fed to a printf statement.
; + Arbitrary 8 bit values are entered as \hh where h is a lowercase hex
; digit. Note that h must be lowercase.
; + Format lines can have the following commands embedded in them.
; Note that only 10 registers (indexed 0-9) are currently implemented.
; \U\hh Set the 'U' value to hh. It is reset after the next command.
; \Ui\hh Set the 'U' value to register[hh].
; \X\hh Set the 'X' value to hh. It is reset after the next command.
; \Xi\hh Set the 'X' value to register[hh].
; \=\hh register[hh] = {register[U]|X|1} (assign)
; \*\hh register[hh] = register[hh] * {register[U]|X|1} (multiply)
; \/\hh register[hh] = register[hh] / {register[U]|X|1} (divide)
; \#\hh register[hh] = register[hh] # {register[U]|X|1} (modulus)
; \+\hh register[hh] = register[hh] + {register[U]|X|1} (add)
; \-\hh register[hh] = register[hh] - {register[U]|X|1} (subtract)
; \<\hh register[hh] = register[hh] << {register[U]|X|1} (shift left)
; \>\hh register[hh] = register[hh] >> {register[U]|X|1} (shift right)
; \&\hh register[hh] = register[hh] & {register[U]|X|1} (bit and)
; \|\hh register[hh] = register[hh] | {register[U]|X|1} (bit or)
; \^\hh register[hh] = register[hh] ^ {register[U]|X|1} (bit xor)
; \~\hh register[hh] = ~register[hh] (bit invert)
; \F\hh register[hh] = The result of running Function {U|0} on the
; next {X|<eol>} characters.
; \U\00 IDS checksum.
; \U\01 XOR checksum. register[hh] is used as the seed value.
; \U\02 ADD checksum. register[hh] is used as the seed value.
; \U\03 CRC-16. register[hh] is used as the seed value
; and register[hh+1] is the polynomial.
; \U\04 CRC-32. register[hh] is used as the seed value
; and register[hh+1] is the polynomial.
; \O\hh Output register[hh] as an {X|1} byte value using method {U|0}.
; \U\00 Binary little-endian (Intel byte order).
; \U\01 Binary big-endian (Motorola byte order).
; \U\02 ASCII text right justified space padded.
; \U\03 ASCII text right justified zero padded.
; \U\04 ASCII text left justified space padded.
; \U\05 ASCII text left justified zero padded.
; \S\hh Scan the next {X|1} bytes into register[hh] using method {U|0}.
; \U\00 ASCII text base 10.
; \U\01 Binary little-endian (Intel byte order).
; \U\02 Binary big-endian (Motorola byte order).
; \P\hh Run Procedure hh on the next {X|<eol>} characters.
; \P\00 Reverse characters.
; \P\01 Convert characters to Colorado Time format. Register[1]
; is the current character position on entry and the
; next character position on exit.
; \P\02 Convert characters to Daktronics AllSport format.
; \B\hh Delete {register[U]|hh} (to beginning of line if zero) characters
; before the cursor or until the string contains X characters.
; \D\hh Delete {register[U]|hh} (to end of line if zero) characters
; at the cursor or until the string contains X characters.
; \I\hh Insert {register[U]|hh} spaces at the cursor or until the string
; contains X characters.
; \Ic\hh Insert {register[U]|hh} {X's|spaces} at the cursor.
; \L\hh Move the cursor {register[U]|hh} positions to the left (to the
; beginning of the line if zero).
; \R\hh Move the cursor {register[U]|hh} positions to the right (to the
; end of the line if zero).
; Note that numbers 0 thru 9 can be entered directly for single character
; embedded commands. For example, '\U\04' is the same as '\U4' and
; '\=\01' is the same as '\=1'.
; + Be very careful about whitespace in each format line. Characters other
; than '%s' specifiers and embedded commands and values will be sent
; exactly as they appear on the line. This means, for instance, that using
; tabs to make a line 'look right' in you favorite editor will cause
; tabs to be sent to the scoreboard instead of the equivalent number of
; spaces (probably not what you wanted).
;
; The format lines follow.
;;Initialization
; This is sent once to initialize the scoreboard.
; Line codes:
; \00 No variable
;CLEAR THE BOARD
;HEADER
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;sync byte 1
\00\55\L1\U1\S3\U3\-2
;sync byte 2
\00\aa\L1\U1\S3\U3\-2
;address
\00\16\L1\U1\S3\U3\-2
;count (1 command byte + 7 digits + punctuation)
\00\09\L1\U1\S3\U3\-2
;tag/command byte
\00\O1\L1\U1\S3\U3\-2
;checksum 1
\00\O2
;DATA
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;control byte
\00\22\L0\U1\S3\U3\-2
;8 blank bytes
\00\00\00\00\00\00\00\00\00
;checksum 2
\00\O2
;increment tag nibble
\00\X\10\+1
;;TimeRunning
; This is sent approximately 10 times per second.
; Line codes:
; \00 No variable
; \01 Formatted time
; \02 Binary time in milliseconds (as a 4 byte little endian integer)
; Setting register[0] to 1 in a format line will cause that line and
; subsequent lines to only be sent once per second (when the second's
; digit changes) instead of approximately 10 times per second. Setting
; register[0] to 0 will resume normal operation for remaining lines.
;HEADER
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;sync byte 1
\00\55\L1\U1\S3\U3\-2
;sync byte 2
\00\aa\L1\U1\S3\U3\-2
;address
\00\16\L1\U1\S3\U3\-2
;count (1 command byte + 7 digits + punctuation)
\00\09\L1\U1\S3\U3\-2
;tag/command byte
\00\O1\L1\U1\S3\U3\-2
;checksum 1
\00\O2
;DATA
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;control byte
\00\22\L0\U1\S3\U3\-2
;Hh:Mm:Ss.abc
;M
\01%12.12s\X\0a\=4\L0\D3\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;m
\01%12.12s\X\0a\=4\L0\D4\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;S
\01%12.12s\X\0a\=4\L0\D6\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;s
\01%12.12s\X\0a\=4\L0\D7\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;a
\01%12.12s\X\0a\=4\L0\D9\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;6th byte is blank (no hundredths)
\00\00
;7th byte is h
\01%12.12s\X\0a\=4\L0\D1\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;8th byte is punctuation (_. if m is blank, :. otherwise)
\01%12.12s\X\0a\=4\L0\D4\S4\D0\+4 \45\45\45\45\45\45\45\45\45\45\40\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;checksum 2
\00\O2
;increment tag nibble
\00\X\10\+1
;;TimeStopped
; This is sent when the time is stopped by a beam break.
; Line codes are identical to the TimeRunning line codes.
;HEADER
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;sync byte 1
\00\55\L1\U1\S3\U3\-2
;sync byte 2
\00\aa\L1\U1\S3\U3\-2
;address
\00\16\L1\U1\S3\U3\-2
;count (1 command byte + 7 digits + punctuation)
\00\09\L1\U1\S3\U3\-2
;tag/command byte
\00\O1\L1\U1\S3\U3\-2
;checksum 1
\00\O2
;DATA
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;control byte
\00\22\L0\U1\S3\U3\-2
;Hh:Mm:Ss.abc
;M
\01%12.12s\X\0a\=4\L0\D3\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;m
\01%12.12s\X\0a\=4\L0\D4\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;S
\01%12.12s\X\0a\=4\L0\D6\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;s
\01%12.12s\X\0a\=4\L0\D7\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;a
\01%12.12s\X\0a\=4\L0\D9\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;b
\01%12.12s\X\0a\=4\L0\D\0a\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;7th byte is h
\01%12.12s\X\0a\=4\L0\D1\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;8th byte is punctuation (_. if m is blank, :. otherwise)
\01%12.12s\X\0a\=4\L0\D4\S4\D0\+4 \45\45\45\45\45\45\45\45\45\45\40\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;checksum 2
\00\O2
;increment tag nibble
\00\X\10\+1
;;TimeOfDay
; This is sent when the 'Send time of day' option is checked in the
; Scoreboard pull down menu.
; Line codes are identical to the TimeRunning line codes.
;
;
;HEADER
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;sync byte 1
\00\55\L1\U1\S3\U3\-2
;sync byte 2
\00\aa\L1\U1\S3\U3\-2
;address
\00\16\L1\U1\S3\U3\-2
;count (1 command byte + 7 digits + punctuation)
\00\09\L1\U1\S3\U3\-2
;tag/command byte
\00\O1\L1\U1\S3\U3\-2
;checksum 1
\00\O2
;DATA
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;control byte
\00\22\L0\U1\S3\U3\-2
;time field is Hh:Mm:Ss.abc
;H
\01%12.12s\X\0a\=4\L0\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;h
\01%12.12s\X\0a\=4\L0\D1\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;M
\01%12.12s\X\0a\=4\L0\D3\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;m
\01%12.12s\X\0a\=4\L0\D4\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;S
\01%12.12s\X\0a\=4\L0\D6\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;s
\01%12.12s\X\0a\=4\L0\D7\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;7th byte is blank (attempt)
\00\00\L0\U1\S3\U3\-2
;8th byte is punctuation (always :: for T.o.D.)
\00\55\L0\U1\S3\U3\-2
;checksum 2
\00\O2
;increment tag nibble
\00\X\10\+1
;;Result
; This is sent once for each result line displayed on the scoreboard.
; Line codes:
; \00 No variable
; \01 Place
; \02 Lane
; \03 Id
; \04 Name
; \05 Affiliation
; \06 Time
; \07 Delta Time
; \08 Cumulative Split Time
; \09 Last Split Time
; \0a Laps To Go
; \0b License
; \0c ReacTime
; \0d Speed
; \0e Pace
; Register[0] is initialized with the index of the current result line and
; will range from 0 through PageSize - 1.
;
;HEADER
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;sync byte 1
\00\55\L1\U1\S3\U3\-2
;sync byte 2
\00\aa\L1\U1\S3\U3\-2
;address
\00\16\L1\U1\S3\U3\-2
;count (1 command byte + 7 digits + punctuation)
\00\09\L1\U1\S3\U3\-2
;tag/command byte
\00\O1\L1\U1\S3\U3\-2
;checksum 1
\00\O2
;DATA
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;control byte
\00\22\L0\U1\S3\U3\-2
;Hh:Mm:Ss.abc
;M
\06%12.12s\X\0a\=4\L0\D3\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;m
\06%12.12s\X\0a\=4\L0\D4\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;S
\06%12.12s\X\0a\=4\L0\D6\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;s
\06%12.12s\X\0a\=4\L0\D7\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;a
\06%12.12s\X\0a\=4\L0\D9\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;b
\06%12.12s\X\0a\=4\L0\D\0a\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;7th byte can be place, lane, or blank (uncomment the one you want)
\01%1.1s\X\0a\=4\L0\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;\02%1.1s\X\0a\=4\L0\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;\00\00
;8th byte is punctuation (_. if m is blank, :. otherwise)
\06%12.12s\X\0a\=4\L0\D4\S4\D0\+4 \45\45\45\45\45\45\45\45\45\45\40\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;checksum 2
\00\O2
;increment tag nibble
\00\X\10\+1
;;Message
; This is sent once for each message line displayed on the scoreboard.
; Line codes:
; \00 No variable
; \01 Text
; Register[0] is initialized with the index of the current message line and
; will range from 0 through <number of lines> - 1.
;HEADER
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;sync byte 1
\00\55\L1\U1\S3\U3\-2
;sync byte 2
\00\aa\L1\U1\S3\U3\-2
;address
\00\16\L1\U1\S3\U3\-2
;count (1 command byte + 7 digits + punctuation)
\00\09\L1\U1\S3\U3\-2
;tag/command byte
\00\O1\L1\U1\S3\U3\-2
;checksum 1
\00\O2
;DATA
;initialize register 2 to 0 (for checksum)
\00\X0\=2
;control byte
\00\22\L0\U1\S3\U3\-2
\01%7.7s\X\0a\=4\L0\D1\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
\01%7.7s\X\0a\=4\L0\D2\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
\01%7.7s\X\0a\=4\L0\D3\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
\01%7.7s\X\0a\=4\L0\D4\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
\01%7.7s\X\0a\=4\L0\D5\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
\01%7.7s\X\0a\=4\L0\D6\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
\01%7.7s\X\0a\=4\L0\S4\D0\+4 \bf\86\db\cf\e6\ed\fd\87\ff\e7\00\L0\U4\R0\B0\R1\D0\L0\U1\S3\U3\-2
;no punctuation (8th byte)
\00\00
;checksum 2
\00\O2
;increment tag nibble
\00\X\10\+1